﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace HOTEL_MANAGEMENT
{
    public partial class frmthayDoiHeSoLoaiKhach : Form
    {
        public frmthayDoiHeSoLoaiKhach()
        {
            InitializeComponent();
        }
        public void Init()
        {
            txtloaiKhachThue.Text = "";
            txtheSo.Text = "";
        }
        public int maLoaiKhach = 0;
        private void LoadData()
        {
            DataTable dt = CLOAIKHACHTHUEBUS.LayBangLoaiKhachThueDaDuyet();
           
            gvheSoCacLoaiKhach.DataSource = dt;
        }
       
        private void frmthayDoiHeSoLoaiKhach_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void gvheSoCacLoaiKhach_Click(object sender, EventArgs e)
        {
            maLoaiKhach = int.Parse(gdloaiKhach.GetRowCellValue(gdloaiKhach.FocusedRowHandle, "MaLoaiKhachThue").ToString());
            if (maLoaiKhach != 0)
            {
                CLOAIKHACHTHUEDTO temp = CLOAIKHACHTHUEBUS.LayThongTinLoaiKhachThue(maLoaiKhach);
                txtheSo.Text = temp.HeSoLoaiKhach.ToString();
                txtloaiKhachThue.Text = temp.TenLoaiKhachThue;
            }

        }
        private int KtMaLoaiKhach(List<CLOAIKHACHTHUEDTO> list, int maLoaiKhach)
        {
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].MaLoaiKhachThue == maLoaiKhach)
                    return 1;
            }
            return 0;
        }
        private int KTTenLoaiKhach(List<CLOAIKHACHTHUEDTO> list, string tenLoaiKhachThue)
        {
            for(int i=0;i<list.Count;i++)
            {
                if (list[i].TenLoaiKhachThue == tenLoaiKhachThue)
                    return 1;
            }
            return 0;
        }
        private void btnThemHeSoLoaiKhach_Click(object sender, EventArgs e)
        {
            //try
            //{
            //    List<CLOAIKHACHTHUEDTO> list = new List<CLOAIKHACHTHUEDTO>();
            //       list= CLOAIKHACHTHUEBUS.LayDanhSachLoaiKhachThue();
            //       if (KTTenLoaiKhach(list, txtloaiKhachThue.Text) == 0)

            CLOAIKHACHTHUEDTO loaiKhach = new CLOAIKHACHTHUEDTO();
            if (txtloaiKhachThue.Text == "")
            {
                MessageBox.Show("Không được để tên trống", "Thông báo");
                txtloaiKhachThue.Focus();
                return;

            }
            else
            {
                if (CLOAIKHACHTHUEBUS.kiemTraTenLoaiKhachDuyNhat(txtloaiKhachThue.Text) == false)
                {
                    MessageBox.Show("Tên loại khách đã tồn tại.", "Thông báo");
                    txtloaiKhachThue.Focus();
                    return;
                }
                else
                {
                    loaiKhach.TenLoaiKhachThue = txtloaiKhachThue.Text;
                    loaiKhach.HeSoLoaiKhach = double.Parse(txtheSo.Text);
                    loaiKhach.Duyet = true;
                    loaiKhach.TinhTrang = false;
                    loaiKhach.HeSoMoi = double.Parse(txtheSo.Text);
                    try
                    {
                        CLOAIKHACHTHUEBUS.ThemLoaiKhachThue(loaiKhach);
                        MessageBox.Show("Thêm thành công.", "Thông báo");
                        LoadData();
                        return;
                    }
                    catch
                    {
                        MessageBox.Show("Thêm không thành công.","Thông báo!");
                    }
                }
            }
        }      

        private void btnxoaHeSoLoaiKhach_Click(object sender, EventArgs e)
        {
            if (maLoaiKhach != 0)
            {
                int flag = 0;
                List<CKHACHTHUEDTO> list = CKHACHTHUEBUS.LayDanhSachkhachthue();
                for (int i = 0; i < list.Count && flag == 0; i++)
                    if (list[i].MaLoaiKhachThue == maLoaiKhach)
                        flag = 1;

                int co = 0;
                if (flag == 1)
                {

                    for (int i = 0; i < list.Count; i++)
                        if (list[i].MaLoaiKhachThue == maLoaiKhach && list[i].TenKhachThue !="")
                            co = 1;
                }

                if (MessageBox.Show("Bạn Có Chắc Chắn Xóa Không?", "Thông Báo!", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    if (flag == 0 || co == 0)
                    {
                        try
                        {
                            CLOAIKHACHTHUEBUS.CapNhatTinhTrangLoaiKhachThue(maLoaiKhach, true);
                            MessageBox.Show("Xóa Loại Phòng Thành Công.", "Thông Báo!");
                            LoadData();
                            Init();
                        }
                        catch
                        {
                            MessageBox.Show("Xóa không thành công.","Thông báo!");
                        }
                    }
                }
                else
                    MessageBox.Show("LoạiKhách Đang Tồn Tại Không Xóa Được", "Thông Báo!");           
            }
            else
                MessageBox.Show("Xin Vui Lòng Chọn Tên Khách Cần Xóa","Thông Báo!");
        }

        private void btnsuaHeSoLoaiKhach_Click(object sender, EventArgs e)
        {
            if (maLoaiKhach != 0 && txtloaiKhachThue.Text != "" && txtheSo.Text != "")
            {
                CLOAIKHACHTHUEDTO temp = CLOAIKHACHTHUEBUS.LayThongTinLoaiKhachThue(maLoaiKhach);
                List<CLOAIKHACHTHUEDTO> list = CLOAIKHACHTHUEBUS.LayDanhSachLoaiKhachThue();
                temp.HeSoLoaiKhach = Double.Parse(txtheSo.Text);
                if (KTTenLoaiKhach(list, txtloaiKhachThue.Text) == 0)
                {
                    temp.TenLoaiKhachThue = txtloaiKhachThue.Text;
                    try
                    {
                        CLOAIKHACHTHUEBUS.CapNhatThongTinLoaiKhachThue(temp);
                        CLOAIKHACHTHUEBUS.ThayDoiHeSoLoaiKhachThue(maLoaiKhach, Double.Parse(txtheSo.Text));
                        MessageBox.Show("Sửa Loại Khách Thành Công.", "Thông Báo!");
                        LoadData();
                    }
                    catch
                    {
                        MessageBox.Show("Sửa không thành công.","Thông báo!");
                    }
                }
                else
                    MessageBox.Show("Tên Loại Khách Đã Tồn Tại.","Thông Báo!");
                Init();
            }
            else
                MessageBox.Show("Xin Vui Lòng Chọn Tên Khách Cần Sửa","Thông Báo!");
        }

        private void frmthayDoiHeSoLoaiKhach_FormClosing(object sender, FormClosingEventArgs e)
        {
            SQT_thayDoiHeSoLoaiKhach.Xoa();
        }     
    }
}